package com.twq.rules

/**
 * Created by tangweiqun on 2017/11/18.
 * 标识符
 *
 */
object Identifiers {
  def main(args: Array[String]): Unit = {
    //scala中定义了术语entity，有类型(types)、值(values)、方法(methods)以及类(classes)四种
    //这些是构建程序的基本要素，而我们是通过标志符或者名字来引用它们的(scala中称之为bindings，中文是绑定)

    // 定义了含有一个方法x的类Foo，其中x和Foo我们都成为绑定
    class Foo {
      def x = 5
    }

    //在当前(本地)作用域中通过标志符来访问类
    val y = new Foo
    y.x

    //需要通过指定包名路径来访问不在本地作用域的类
    val m = new com.twq.test.FooTest
    m.x

    //也可以通过import将FooTest绑定到本地作用域中
    import com.twq.test.FooTest
    val n = new FooTest
    n.x

    //我们可以通过scala的import将实体绑定到任意的名字上
    import com.twq.test.{FooTest => OtherFoo}
    val k = new OtherFoo
    k.x

    import java.{io => jio}
    def someMethod(input: jio.InputStream) = {

    }

  }
}


